/*
*	Copyright (c) 2009 Brent Mombourquette
*
*	Permission is hereby granted, free of charge, to any person
*	obtaining a copy of this software and associated documentation
*	files (the "Software"), to deal in the Software without
*	restriction, including without limitation the rights to use,
*	copy, modify, merge, publish, distribute, sublicense, and/or sell
*	copies of the Software, and to permit persons to whom the
*	Software is furnished to do so, subject to the following
*	conditions:
*
*	The above copyright notice and this permission notice shall be
*	included in all copies or substantial portions of the Software.
*
*	THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
*	EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
*	OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
*	NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
*	HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
*	WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
*	FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
*	OTHER DEALINGS IN THE SOFTWARE.
*
*	This file contains the functions for the Filter tab of graph_page.html and their helper methods.
*/

var filters; 		// An array of filters to apply to the graph

var filterTab = {
	/*
	 * Reload the graph with a filter applied.
	 * Globals: filters
	 */
	filter: function() {
		var filterString = document.getElementById("filterTextArea").value;
		//If it's the emptry string, reload regularly
		if (!filterString){
			graphTab.reloadGraphButton();
			return;
		}
		// Sit the "Filtering..." string to reflect what is being filtered
		var filteringTextTag = document.getElementById("filteringText");
		filteringTextTag.innerHTML = "Filtering..." + filterString;
		
		filters = filterString.toLowerCase().split(" ");
		graphTab.reloadGraph();
	},
	
	/*
	 * Determine whether url matches the filters in in the array filters
	 * Globals: filters
	 * @param {String} url			The URL to match the filters against
	 * @return {Boolean} matched
	 */
	filterMatch: function(url) {
		var matched = false;
		for (var j = 0; j < filters.length; j++) {
			if ( url.toLowerCase().match(filters[j])) {
				matched = true;
				break;
			}
		}
		return matched;
	},
	
	/*
	 * Determine whether the current graph is being filter or not.
	 * @param {Stringt} filterText
	 * @return {Boolean} 
	 */
	isFiltered: function(filterText) {
		if (filterText) { 
			if (filterText == "Filtering...Nothing") {
				return false;
			} else {
				return true;
			}
		} else { // If it does not exist then there is no filter
			return false;
		}
	}
}